home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / docs / apps / circuits / spice2g6.z / spice2g6 / spice / Fortran / setplt.f < prev    next >
Encoding:
Text File  |  1989-02-03  |  3.5 KB  |  103 lines

  1.       subroutine setplt(loc)
  2.       implicit double precision (a-h,o-z)
  3. c
  4. c     this routine generates the 'legend' subheading used to identify
  5. c individual traces on multi-trace line-printer plots.
  6. c
  7. c spice version 2g.6  sccsid=tabinf 3/15/83
  8.       common /tabinf/ ielmnt,isbckt,nsbckt,iunsat,nunsat,itemps,numtem,
  9.      1   isens,nsens,ifour,nfour,ifield,icode,idelim,icolum,insize,
  10.      2   junode,lsbkpt,numbkp,iorder,jmnode,iur,iuc,ilc,ilr,numoff,isr,
  11.      3   nmoffc,iseq,iseq1,neqn,nodevs,ndiag,iswap,iequa,macins,lvnim1,
  12.      4   lx0,lvn,lynl,lyu,lyl,lx1,lx2,lx3,lx4,lx5,lx6,lx7,ld0,ld1,ltd,
  13.      5   imynl,imvn,lcvn,nsnod,nsmat,nsval,icnod,icmat,icval,
  14.      6   loutpt,lpol,lzer,irswpf,irswpr,icswpf,icswpr,irpt,jcpt,
  15.      7   irowno,jcolno,nttbr,nttar,lvntmp
  16. c spice version 2g.6  sccsid=status 3/15/83
  17.       common /status/ omega,time,delta,delold(7),ag(7),vt,xni,egfet,
  18.      1   xmu,sfactr,mode,modedc,icalc,initf,method,iord,maxord,noncon,
  19.      2   iterno,itemno,nosolv,modac,ipiv,ivmflg,ipostp,iscrch,iofile
  20. c spice version 2g.6  sccsid=miscel 3/15/83
  21.       common /miscel/ atime,aprog(3),adate,atitle(10),defl,defw,defad,
  22.      1  defas,rstats(50),iwidth,lwidth,nopage
  23. c spice version 2g.6  sccsid=dc 3/15/83
  24.       common /dc/ tcstar(2),tcstop(2),tcincr(2),icvflg,itcelm(2),kssop,
  25.      1   kinel,kidin,kovar,kidout
  26. c spice version 2g.6  sccsid=ac 3/15/83
  27.       common /ac/ fstart,fstop,fincr,skw2,refprl,spw2,jacflg,idfreq,
  28.      1   inoise,nosprt,nosout,nosin,idist,idprt
  29. c spice version 2g.6  sccsid=tran 3/15/83
  30.       common /tran/ tstep,tstop,tstart,delmax,tdmax,forfre,jtrflg
  31. c spice version 2g.6  sccsid=outinf 3/15/83
  32.       common /outinf/ xincr,string(15),xstart,yvar(8),itab(8),itype(8),
  33.      1   ilogy(8),npoint,numout,kntr,numdgt
  34. c spice version 2g.6  sccsid=blank 3/15/83
  35.       common /blank/ value(200000)
  36.       integer nodplc(64)
  37.       complex cvalue(32)
  38.       equivalence (value(1),nodplc(1),cvalue(1))
  39. c
  40.       dimension logopt(6)
  41.       data logopt / 2, 2, 1, 1, 1, 1 /
  42.       data ablnk, atimex, afreq / 1h , 6h  time, 6h  freq /
  43.       data pltsym / 8h*+=$0<>? /
  44. c
  45. c  set limits depending upon the analysis mode
  46. c
  47.       if (mode-2) 10,20,30
  48.    10 xstart=tcstar(1)
  49.       xincr=tcincr(1)
  50.       npoint=icvflg
  51.       itemp=itcelm(1)
  52.       loce=nodplc(itemp+1)
  53.       asweep=value(loce)
  54.       go to 40
  55.    20 xstart=tstart
  56.       xincr=tstep
  57.       npoint=jtrflg
  58.       asweep=atimex
  59.       go to 40
  60.    30 xstart=fstart
  61.       xincr=fincr
  62.       npoint=icalc
  63.       asweep=afreq
  64. c
  65. c  construct and print the output variables with corresponding plot
  66. c    symbols
  67. c
  68.    40 loct=loc+2
  69.       if (kntr.eq.1) go to 80
  70.       write (iofile,41)
  71.    41 format('0legend:'/)
  72.       do 70 i=1,kntr
  73.       loct=loct+2
  74.       itab(i)=nodplc(loct)
  75.       ioutyp=nodplc(loct+1)
  76.       itype(i)=ioutyp
  77.       ilogy(i)=1
  78.       if (mode.le.2) go to 50
  79.       ilogy(i)=logopt(ioutyp)
  80.    50 ipos=1
  81.       call outnam(itab(i),itype(i),string,ipos)
  82.       call move(string,ipos,ablnk,1,7)
  83.       jstop=(ipos+6)/8
  84.       call move(achar,1,pltsym,i,1)
  85.       write (iofile,61) achar,(string(j),j=1,jstop)
  86.    61 format(1x,a1,2h: ,5a8)
  87.    70 continue
  88.    80 if (kntr.ge.2) go to 90
  89.       itab(1)=nodplc(loc+4)
  90.       ioutyp=nodplc(loc+5)
  91.       itype(1)=ioutyp
  92.       ilogy(1)=1
  93.       if (mode.le.2) go to 90
  94.       ilogy(1)=logopt(ioutyp)
  95.    90 ipos=1
  96.       call outnam(itab(1),itype(1),string,ipos)
  97.       call move(string,ipos,ablnk,1,7)
  98.       jstop=(ipos+6)/8
  99.       write (iofile,101) asweep,(string(j),j=1,jstop)
  100.   101 format(1hx/3x,a8,4x,5a8)
  101.       return
  102.       end
  103.